﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SIGERP_Negocio;
using SIGERP_Entidades;

namespace SIGERP_Presentacion
{
    public partial class frmProvinciaActualizar : Form
    {
        private ErrorProvider ep = new ErrorProvider();
        private Provincia p;

        public frmProvinciaActualizar()
        {
            InitializeComponent();
        }

        public frmProvinciaActualizar(Provincia provincia)
        {
            p = provincia;
            InitializeComponent();
            txtIdProvincia.Text = provincia.id.ToString();
            txtNomProvincia.Text = provincia.descripcion;
            
        }
     
        private void actualizarProvincia()
        {
            
            p.id = Convert.ToInt32(txtIdProvincia.Text);
            p.descripcion = txtNomProvincia.Text.ToUpper();
            p.pais = (Pais)cmbPais.SelectedItem;
            Provincias.Actualizar(p);
            Close();
        }

        private void frmProvinciaActualizar_Load(object sender, EventArgs e)
        {
            List<Pais> paises = Paises.GetAll();
            foreach (Pais pais in paises)
            {
                cmbPais.Items.Add(pais);
            }
            foreach (Pais pais in cmbPais.Items)
                if (pais.id == p.pais.id) cmbPais.SelectedItem = pais;
            cmbPais.Width = Utilities.adjustWidth(cmbPais);
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            ep.Clear();


            if (txtNomProvincia.Text.Equals(""))
            {
                ep.SetError(txtNomProvincia, "Este campo es obligatorio.");
                txtNomProvincia.Focus();
                return;
            }

            try
            {
                if (((Pais)cmbPais.SelectedItem).id <= 0)
                {
                    ep.SetError(cmbPais, "Debe elegir un pais.");
                    cmbPais.Focus();
                    return;
                }
            }
            catch
            {
                ep.SetError(cmbPais, "Debe elegir un pais.");
                cmbPais.Focus();
                return;
            }


            if ((p.descripcion.Equals(txtNomProvincia.Text) && p.pais.id == ((Pais)cmbPais.SelectedItem).id))
            {
                actualizarProvincia();
            }
            else
            {
                Provincia prov = new Provincia();
                prov.descripcion = txtNomProvincia.Text.ToUpper();
                prov.pais = (Pais)cmbPais.SelectedItem;

                if (Provincias.verificarSiExiste(prov))
                {
                    MessageBox.Show("La provincia ingresada ingresada ya existe", Text, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);

                }
                else
                {
                    actualizarProvincia();
                }
            }      

               
        }

        private void btnCancelar_Click_1(object sender, EventArgs e)
        {
            Close();
        }

        private void toolStripAyuda_Click(object sender, EventArgs e)
        {
            Help.ShowHelp(this, "/SIGERP_AYUDA.chm", HelpNavigator.Topic, "frmProvinciaActualizar.htm");
        }

    }
}
